﻿using Volo.Abp.Application.Dtos;
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Domain.Entities;

namespace {{ Namespace }}.{{ DirName }}
{

    ///<summary>
    ///{{ DisplayStr }}
    ///</summary>
    public class {{ Name }}AddDto
    {
        {%- for classProperty in ClassPropertys -%}
            {%- if classProperty.Name != "IsDelete" and classProperty.Name != "CreateDate" and classProperty.Name != "UpdateDate" -%}
        ///<summary>
        ///{{classProperty.property_display_str}}
        ///</summary>
                {%- if classProperty.class_attributes != null -%}
                    {%- for classAttribute in classProperty.class_attributes -%}
        {{ classAttribute.name_value }}
                    {%- endfor -%}
                {%- endif -%}
                {%- if classProperty.boolOtherModel == true -%}
        public int {{ classProperty.Name -}}Id { get; set; }
                {%- else -%}
        public {{ classProperty.property_type }} {{ classProperty.Name }} { get; set; }
                {%- endif -%}
            {%- endif -%}

        {%- endfor -%}
    }

    ///<summary>
    ///{{ DisplayStr }}
    ///</summary>
    public class {{ Name }}UpdateDto:Entity<{{ EntityType | replace:'"',"" }}>
    {
        {%- for classProperty in ClassPropertys -%}
            {%- if classProperty.Name != "IsDelete" and classProperty.Name != "CreateDate" and classProperty.Name != "UpdateDate" -%}
        ///<summary>
        ///{{classProperty.property_display_str}}
        ///</summary>
                {%- if classProperty.class_attributes != null -%}
                    {%- for classAttribute in classProperty.class_attributes -%}
        {{ classAttribute.name_value }}
                    {%- endfor -%}
                {%- endif -%}
                {%- if classProperty.boolOtherModel == true -%}
        public int {{ classProperty.Name -}}Id { get; set; }
                {%- else -%}
        public {{ classProperty.property_type }} {{ classProperty.Name }} { get; set; }
                {%- endif -%}
            {%- endif -%}

        {%- endfor -%}
    }

    ///<summary>
    ///{{ DisplayStr }}
    ///</summary>
    public class {{ Name }}Dto:Entity<{{ EntityType | replace:'"',"" }}>
    {
        {%- for classProperty in ClassPropertys -%}
            {%- if classProperty.Name != "IsDelete" and classProperty.Name != "CreateDate" and classProperty.Name != "UpdateDate" -%}
        ///<summary>
        ///{{classProperty.property_display_str}}
        ///</summary>
                {%- if classProperty.boolOtherModel == true -%}
        public int {{ classProperty.Name -}}Id { get; set; }
                {%- else -%}
        public {{ classProperty.property_type }} {{ classProperty.Name }} { get; set; }
                {%- endif -%}
            {%- endif -%}

        {%- endfor -%}
    }

    ///<summary>
    ///{{ DisplayStr }}
    ///</summary>
    public class {{ Name }}ListDto:Entity<{{ EntityType | replace:'"',"" }}>
    {
        {%- for classProperty in ClassPropertys -%}
            {%- if classProperty.Name != "IsDelete" and classProperty.Name != "CreateDate" and classProperty.Name != "UpdateDate" -%}
        ///<summary>
        ///{{classProperty.property_display_str}}
        ///</summary>
                {%- if classProperty.boolOtherModel == true -%}
        public int {{ classProperty.Name -}}Id { get; set; }
                {%- else -%}
        public {{ classProperty.property_type }} {{ classProperty.Name }} { get; set; }
                {%- endif -%}
            {%- endif -%}

        {%- endfor -%}
    }

 }